<?php

namespace Gds\AchatBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Gds\AchatBundle\Entity\FactureFournisseur
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Gds\AchatBundle\Entity\FactureFournisseurRepository")
 */
class FactureFournisseur {
public function getTime() {
        $time = $this->getHeure();
        $sec = $time % 60;
        if ($sec < 10)
            $sec = '0' . $sec;
        $reste = (int) ($time / 60);
        $minute = $reste % 60;
        if ($minute < 10)
            $minute = '0' . $minute;
        $heure = (int) ($reste / 60);
        if ($heure < 10)
            $heure = '0' . $heure;
        $res = $heure . ':' . $minute . ':' . $sec;
        return $res;
    }
    /**
     * @ORM\OneToMany(targetEntity="Gds\AchatBundle\Entity\BonLivraisonFournisseur", mappedBy="facture")
     */
    private $bon_livraisons; // Ici commentaires prend un "s", car un article a plusieurs commentaires !
    /**
     * @ORM\ManyToOne(targetEntity="Gds\AchatBundle\Entity\Fournisseur", inversedBy="factures")
     */
    private $fournisseur;
/**
     * @var boolean $is_cloturer
     *
     * @ORM\Column(name="is_cloturer", type="boolean")
     */
    private $is_cloturer;
    /**
     * @var boolean $is_supprimer
     *
     * @ORM\Column(name="is_supprimer", type="boolean")
     */
    private $is_supprimer;
    

    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\OneToMany(targetEntity="Gds\AchatBundle\Entity\LigneReglementFournisseur", mappedBy="facture")
     */
    private $lignes_reglement;
/**
     * @ORM\ManyToOne(targetEntity="Gds\UserBundle\Entity\User", inversedBy="factures_fournisseur")
     * @ORM\JoinColumn(nullable=false)
     */
    private $user;
    /**
     * @var \DateTime $date
     *
     * @ORM\Column(name="date", type="date")
     */
    private $date;

    /**
     * @var string $reference
     *
     * @ORM\Column(name="reference", type="string", length=255)
     */
    private $reference;

    /**
     * @var float $montant_ttc
     *
     * @ORM\Column(name="montant_ttc", type="decimal", scale=3)
     */
    private $montant_ttc;
    /**
     * @var float $montant_ttc
     *
     * @ORM\Column(name="reste", type="decimal", scale=3)
     */
    private $reste;
/**
     * @var integer $heure
     *
     * @ORM\Column(name="heure", type="integer")
     */
    private $heure;
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set date
     *
     * @param \DateTime $date
     * @return FactureFournisseur
     */
    public function setDate($date) {
        $this->date = $date;

        return $this;
    }

    /**
     * Get date
     *
     * @return \DateTime 
     */
    public function getDate() {
        return $this->date;
    }

    /**
     * Set reference
     *
     * @param string $reference
     * @return FactureFournisseur
     */
    public function setReference($reference) {
        $this->reference = $reference;

        return $this;
    }

    /**
     * Get reference
     *
     * @return string 
     */
    public function getReference() {
        return $this->reference;
    }

    /**
     * Set total_ttc
     *
     * @param float $totalTtc
     * @return FactureFournisseur
     */
    public function setTotalTtc($totalTtc) {
        $this->total_ttc = $totalTtc;

        return $this;
    }

    /**
     * Get total_ttc
     *
     * @return float 
     */
    public function getTotalTtc() {
        return $this->total_ttc;
    }

    /**
     * Set fournisseur
     *
     * @param Gds\AchatBundle\Entity\Fournisseur $fournisseur
     * @return FactureFournisseur
     */
    public function setFournisseur(\Gds\AchatBundle\Entity\Fournisseur $fournisseur) {
        $this->fournisseur = $fournisseur;

        return $this;
    }

    /**
     * Get fournisseur
     *
     * @return Gds\AchatBundle\Entity\Fournisseur 
     */
    public function getFournisseur() {
        return $this->fournisseur;
    }

    /**
     * Constructor
     */
    public function __construct() {
        $this->bon_livraisons = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Add bon_livraisons
     *
     * @param Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonLivraisons
     * @return FactureFournisseur
     */
    public function addBonLivraison(\Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonLivraisons) {
        $this->bon_livraisons[] = $bonLivraisons;

        return $this;
    }

    /**
     * Remove bon_livraisons
     *
     * @param Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonLivraisons
     */
    public function removeBonLivraison(\Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonLivraisons) {
        $this->bon_livraisons->removeElement($bonLivraisons);
    }

    /**
     * Get bon_livraisons
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getBonLivraisons() {
        return $this->bon_livraisons;
    }

    /**
     * Set montant_ttc
     *
     * @param float $montantTtc
     * @return FactureFournisseur
     */
    public function setMontantTtc($montantTtc) {
        $this->montant_ttc = $montantTtc;

        return $this;
    }

    /**
     * Get montant_ttc
     *
     * @return float 
     */
    public function getMontantTtc() {
        return $this->montant_ttc;
    }


    /**
     * Add lignes_reglement
     *
     * @param \Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglement
     * @return FactureFournisseur
     */
    public function addLignesReglement(\Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglement)
    {
        $this->lignes_reglement[] = $lignesReglement;

        return $this;
    }

    /**
     * Remove lignes_reglement
     *
     * @param \Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglement
     */
    public function removeLignesReglement(\Gds\AchatBundle\Entity\LigneReglementFournisseur $lignesReglement)
    {
        $this->lignes_reglement->removeElement($lignesReglement);
    }

    /**
     * Get lignes_reglement
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getLignesReglement()
    {
        return $this->lignes_reglement;
    }

    /**
     * Set user
     *
     * @param \Gds\UserBundle\Entity\User $user
     * @return FactureFournisseur
     */
    public function setUser(\Gds\UserBundle\Entity\User $user)
    {
        $this->user = $user;

        return $this;
    }

    /**
     * Get user
     *
     * @return \Gds\UserBundle\Entity\User 
     */
    public function getUser()
    {
        return $this->user;
    }

    /**
     * Set is_cloturer
     *
     * @param boolean $isCloturer
     * @return FactureFournisseur
     */
    public function setIsCloturer($isCloturer)
    {
        $this->is_cloturer = $isCloturer;

        return $this;
    }

    /**
     * Get is_cloturer
     *
     * @return boolean 
     */
    public function getIsCloturer()
    {
        return $this->is_cloturer;
    }

    /**
     * Set is_supprimer
     *
     * @param boolean $isSupprimer
     * @return FactureFournisseur
     */
    public function setIsSupprimer($isSupprimer)
    {
        $this->is_supprimer = $isSupprimer;

        return $this;
    }

    /**
     * Get is_supprimer
     *
     * @return boolean 
     */
    public function getIsSupprimer()
    {
        return $this->is_supprimer;
    }

    /**
     * Set heure
     *
     * @param integer $heure
     * @return FactureFournisseur
     */
    public function setHeure($heure)
    {
        $this->heure = $heure;

        return $this;
    }

    /**
     * Get heure
     *
     * @return integer 
     */
    public function getHeure()
    {
        return $this->heure;
    }

    /**
     * Set reste
     *
     * @param float $reste
     * @return FactureFournisseur
     */
    public function setReste($reste)
    {
        $this->reste = $reste;

        return $this;
    }

    /**
     * Get reste
     *
     * @return float 
     */
    public function getReste()
    {
        return $this->reste;
    }
    public function __toString() {
        return $this->reference;
    }
}
